package com.ms3ds.mineInfo.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ms3ds.common.core.annotation.Excel;
import com.ms3ds.common.core.web.domain.BaseEntity;

/**
 * 告警信息对象 alarm
 *
 * @author zlw
 * @date 2025-09-17
 */
public class Alarm extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 矿山id */
    private Long mineId;

    @Excel(name = "矿山名称")
    private String mineName;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 告警信息 */
    @Excel(name = "告警信息")
    private String alarmInfo;

    /** 告警类别(1是设备告警，2是车辆告警，3是人员告警，4是监控告警，5是其他告警) */
    @Excel(name = "告警类别(1是设备告警，2是车辆告警，3是人员告警，4是监控告警，5是其他告警)")
    private Long alarmType;

    /** 告警级别(1是一般告警，2是严重告警，3是紧急告警) */
    @Excel(name = "告警级别(1是一般告警，2是严重告警，3是紧急告警)")
    private Long alarmLevel;

    /** 告警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "告警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;


    /** 告警状态 (数据库字段: alarm_condition) */
    @Excel(name = "告警状态")
    private String condition;


    /** 处理时间（可空） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    public void setCondition(String condition)
    {
        this.condition = condition;
    }

    public String getCondition()
    {
        return condition;
    }
    public Date getUpdateTime()
    {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime)
    {
        this.updateTime = updateTime;
    }



    public String getMineName() {
        return mineName;
    }

    public void setMineName(String mineName) {
        this.mineName = mineName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setMineId(Long mineId)
    {
        this.mineId = mineId;
    }

    public Long getMineId()
    {
        return mineId;
    }

    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }

    public void setAlarmInfo(String alarmInfo)
    {
        this.alarmInfo = alarmInfo;
    }

    public String getAlarmInfo()
    {
        return alarmInfo;
    }

    public void setAlarmType(Long alarmType)
    {
        this.alarmType = alarmType;
    }

    public Long getAlarmType()
    {
        return alarmType;
    }

    public void setAlarmLevel(Long alarmLevel)
    {
        this.alarmLevel = alarmLevel;
    }

    public Long getAlarmLevel()
    {
        return alarmLevel;
    }

    public void setAlarmTime(Date alarmTime)
    {
        this.alarmTime = alarmTime;
    }

    public Date getAlarmTime()
    {
        return alarmTime;
    }

//    @Override
//    public String toString() {
//        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
//            .append("id", getId())
//            .append("mineId", getMineId())
//            .append("title", getTitle())
//            .append("alarmInfo", getAlarmInfo())
//            .append("alarmType", getAlarmType())
//            .append("alarmLevel", getAlarmLevel())
//            .append("alarmTime", getAlarmTime())
//            .toString();
//    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("mineId", getMineId())
                .append("title", getTitle())
                .append("alarmInfo", getAlarmInfo())
                .append("alarmType", getAlarmType())
                .append("alarmLevel", getAlarmLevel())
                .append("alarmTime", getAlarmTime())
                .append("condition", getCondition())
                .append("updateTime", getUpdateTime())
                .toString();
    }

}
